﻿/**
 *   PantallaOpciones: Pantalla de opciones: calidad gráfica del juego
 *
 *   @see Menu Juego Saboteur
 *   @author 1-DAI IES San Vicente 2010/11
 */

/* --------------------------------------------------
   Parte de Saboteur - Remake
   Versiones hasta la fecha:

   Num.   Fecha       Por / Cambios
   ---------------------------------------------------
   0.11  02-Nov-2010   Nacho
                       Creada la clase, extraida de Menu, para facilitar
                         el reparto de trabajo
 ---------------------------------------------------- */

class PantallaOpciones
{
    ElemGrafico fondoMenu;
    Fuente fuente;
    string carpeta;
    Juego miJuego;

    public PantallaOpciones(Juego j)
    {
        fondoMenu = new ElemGrafico(
            j.GetCarpetaImagenes() + "fondoMenu.png");
        fuente = new Fuente("FreeSansBold.ttf", 18);
        miJuego = j;

        //recoge la carpeta que va ha usar el juego y la uso a modo de bool
        //para ver si esta en alta o en baja calidad
        carpeta = j.GetCarpetaImagenes();
    }


    public void Lanzar()
    {
        bool salirOpciones = false;
        string baja = "1. Baja";
        string alta = "2. Alta";

        //Compruebo a antes de entara en el buble para que me indique su estado antes de modificarlo yo
        if (carpeta == "img2/")
        {
            baja = "1. Baja ";
            alta = "2. Alta *";
        }
        else
        {
            baja = "1. Baja *";
            alta = "2. Alta ";
        }

        while (!salirOpciones)
        {
            salirOpciones = false;
            Hardware.BorrarPantallaOculta(0, 0, 0); // Borro en negro

            fondoMenu.Dibujar(0, 0);
            Hardware.EscribirTextoOculta(
                 "Calidad de los gráficos",
                 300, 40, 0xAA, 0xAA, 0xFF, fuente);
            Hardware.EscribirTextoOculta(
                  baja,
                  400, 110, 0xAA, 0xAA, 0xEE, fuente);
            Hardware.EscribirTextoOculta(
                  alta,
                  400, 140, 0xAA, 0xAA, 0xCC, fuente);
            Hardware.EscribirTextoOculta(
                  "Pulsa V para volver",
                  400, 250, 0xAA, 0xAA, 0xCC, fuente);

            Hardware.VisualizarOculta();
            Hardware.Pausa(10);

            if (Hardware.TeclaPulsada(Hardware.TECLA_V))
                salirOpciones = true;

            if (Hardware.TeclaPulsada(Hardware.TECLA_1))
            {
                // Calidad baja
                miJuego.SetGraficosMejorados(false);
                baja = "1. Baja *";
                alta = "2. Alta ";
            }

            if (Hardware.TeclaPulsada(Hardware.TECLA_2))
            {
                // Calidad alta
                miJuego.SetGraficosMejorados(true);
                baja = "1. Baja ";
                alta = "2. Alta *";
            }
        }
    }
}
